package com.example.mobile2030606155byl0611class29work;

import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

    private TextView tvMainTitle;
    private EditText edtTxtMainName;
    private EditText edtTxtMainAge;
    private EditText edtTxtMainScore;
    private Button btnMainInsert;
    private Button btnMainUpdate;
    private Button btnMainDelete;
    private Button btnMainQuery;
    private TextView tvMainDisplay;

    MySQLiteOpenHelper openHelper;
    SQLiteDatabase database;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();

        openHelper = new MySQLiteOpenHelper(this,"student.db",null,1);

        btnMainInsert.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                String name=edtTxtMainName.getText().toString().trim();
                int age = Integer.valueOf(edtTxtMainAge.getText().toString().trim());
                float score = Float.valueOf(edtTxtMainScore.getText().toString().trim());

                ContentValues values = new ContentValues();
                values.put("name",name);
                values.put("age",age);
                values.put("score",score);

                database=openHelper.getReadableDatabase();

                Long result = database.insert("users",null,values);

                database.close();
                Log.i("TAG","onClick:"+result);
            }
        });

        btnMainQuery.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {

                database=openHelper.getReadableDatabase();

                Cursor cursor = database.query("users",
                        null,null,null,
                        null,null,null);

                if (cursor.moveToFirst()){
                    tvMainDisplay.setText(null);
                    do {
                        String name=cursor.getString(1);
                        int age = cursor.getInt(2);
                        float score=cursor.getFloat(3);
                        tvMainDisplay.append(name+" "+age+" "+score+"\n");
                    }while (cursor.moveToNext());
                }

                cursor.close();
                database.close();

            }
        });

        btnMainUpdate.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                String name=edtTxtMainName.getText().toString().trim();
                float score = Float.valueOf(edtTxtMainScore.getText().toString().trim());

                ContentValues values =new ContentValues();
                values.put("score",score);

                database=openHelper.getWritableDatabase();

                database.update("users",values,"name=?",new String[]{name});
                database.close();
            }
        });

        btnMainDelete.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                String name=edtTxtMainName.getText().toString().trim();

                database=openHelper.getWritableDatabase();

                database.delete("users","name+?",new String[]{name});
                database.close();
            }
        });
    }

    private void initView() {
        tvMainTitle = findViewById(R.id.tvMainTitle);
        edtTxtMainName = findViewById(R.id.edtTxtMainName);
        edtTxtMainAge = findViewById(R.id.edtTxtMainAge);
        edtTxtMainScore = findViewById(R.id.edtTxtMainScore);
        btnMainInsert = findViewById(R.id.btnMainInsert);
        btnMainUpdate = findViewById(R.id.btnMainUpdate);
        btnMainDelete = findViewById(R.id.btnMainDelete);
        btnMainQuery = findViewById(R.id.btnMainQuery);
        tvMainDisplay = findViewById(R.id.tvMainDisplay);
    }
}